iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0

Information reconciliation又稱資訊協調,源自於古典資訊處理的奇偶校驗的延伸,透過級聯協議實現(Cascade Protocol)。

奇偶校驗

奇偶校驗技術可以透過驗證奇偶校驗位元來確保接收到的字串的正確性。
奇偶校驗位是我們在發送到接收方之前在初始字串末尾添加的一位附加位。
對於給定的一組位,我們將計算有多少位值為「1」:

  1. 如果計數為偶數,我們將添加奇偶校驗位 0我們字串的末尾。
  2. 如果計數為奇數,我們將添加奇偶校驗位 1

假設

  • 初始位元串: 1101100
  • 奇偶校驗位: 1 + 1 + 0 + 1 + 1 + 0 + 0 + ( 𝑚 𝑜 𝑑 2 ) = 0
  • 新增奇偶校驗位:

如果成功傳輸

  • Asja發送 11011000到Balvis。
  • Balvis收到 11011000並透過計算前 7 位的奇偶校驗來驗證正確性: 1 + 1 + 0 + 1 + 1 + 0 + 0 ( 𝑚 𝑜 𝑑 2 ) = 0
  • Balvis 將結果與奇偶校驗位進行比較 0=0

如果傳輸失敗

  • Asja發送 11011000到Balvis。
  • 頻道中出現一些干擾,Balvis 接收 11111000
  • Balvis 透過計算前 7 位的奇偶校驗來驗證正確性: 1 + 1 + 1 + 1 + 1 + 0 + 0 ( 𝑚 𝑜 𝑑 2 ) = 1並與奇偶校驗位進行比較 1≠0
  • 計算結果與奇偶校驗位不匹配,因此 Balvis 知道接收到的位元字串包含錯誤。

奇偶校驗問題

然而,奇偶校驗仍然會遇到到一定比例的錯誤。
假設您只想傳送一位訊息: 1。您可以新增奇偶校驗位 11並發送訊息。
如果頻道中存在噪聲,接收者可能會收到(以一定機率),

  • 01
  • 10
  • 00

透過查看奇偶校驗位,接收者將得出結論:

  • 01 :這個位元串顯然有一個錯誤,因為 0 𝑚 𝑜 𝑑 ( 2 ) ≠ 1
  • 10 :這個位元串顯然有一個錯誤,因為 1 𝑚 𝑜 𝑑 ( 2 ) ≠ 0
  • 00:這個字串是正確的,因為 0 𝑚 𝑜 𝑑 ( 2 ) = 0
    我們剛剛把一個有錯誤的字串視為正確的字串!
    這並不完美,但我們仍然可以使用它並開發錯誤檢測和糾錯協議。

級聯協議(Cascade Protocol)。

級聯協議的想法是執行多輪傳輸,在每輪中將兩個密鑰分為區塊並比較這些區塊的奇偶校驗。
通常的方法是先隨機化錯誤的位置,因此 Asja 和 Balvis 同意隨機排列並重新排序其位元串。
因此會導入下方的隨機排列

#Performing random permutation
import random #importing randomizing library

list1=['a', 'b', 'c']
list2=[1, 2, 3]

permutation = list(zip(list1, list2)) #map the index of multiple lists
random.shuffle(permutation) #performing permutation
list1, list2 = zip(*permutation) #unpacking values

print(list1)
print(list2)

輸出結果有可能是下面的結果或是其他排列方式
('c', 'a', 'b')
(3, 1, 2)

傳輸細節

級聯協定由多個通道組成。在每次傳遞之前,Asja 和 Balvis 都會執行隨機排列並重新排序其位元。

  • 1st PASS - 細分區塊:
  1. Asja和Balvis透過使用他們同意的方式隨機排列來洗牌。
  2. Asja 和 Balvis 將其密鑰字串細分為相等長度的區塊,並計算每個區塊的奇偶校驗位元。
  3. Asja 和 Balvis 比較奇偶校驗位。
  4. 如果奇偶校驗位匹配 - 它們接受正確的區塊。
  5. 如果奇偶校驗位不匹配 - 它們將繼續進行下一輪,因為該區塊包含錯誤。
  • 2nd PASS - 二分搜尋:
  1. Asja和Balvis透過使用他們同意的方式隨機排列來洗牌。
  2. Asja 和 Balvis 將有錯誤的區塊分成兩半,並計算每一半的奇偶校驗位。
  3. Asja 和 Balvis 比較奇偶校驗位。
  4. 如果奇偶校驗位匹配 - 它們接受正確的區塊。
  5. 如果奇偶校驗位不匹配 - 它們將繼續進行下一輪,因為該區塊包含錯誤。

3rd PASS 將重複 2nd PASS!
Asja 和 Balvis 將重複2nd PASS,直到找到並修正所有錯誤。

Threshold

級聯協議有一定的Threshold。如果 QBER ≥ 0.25,則 Cascade 協議揭露的內容超過𝑛位,因此可能是完整的原始密鑰。

區塊大小

子區塊大小𝑤取決於迭代。而初始區塊大小應選擇可以容許區塊中出現一個錯誤的大小。因此,我們可以再次使用 QBER 值來估計𝑤值!
例如: first pass, 𝑤1=0.73/QBER

BICONF Strategy

然而,如果傳輸過程中出現偶數個錯誤,奇偶校驗的方式就會失效。
因此,Asja和Balvis應該轉向BICONF策略。

BICONF 策略背後的想法是 Asja 和 Balvis 將重複比較整個位元串中隨機選擇的子集的奇偶性(這有點繞口(´・_・`) ):

  1. Asja 和 Balvis 從他們的字串中選擇對應位元的隨機子集。
  2. 他們比較奇偶校驗位。
  3. 如果他們發現奇偶校驗不匹配,他們就會應用二分搜索法,直到糾正該錯誤。
  4. 如果奇偶校驗位在幾輪(例如 10 輪)後仍然匹配,則可以斷定它們的密鑰是相同的。

區塊大小

我們可以再次使用 QBER 值來估計區塊長度
QBER 值越小,區塊大小越大。
https://ithelp.ithome.com.tw/upload/images/20230928/20137394XLVrU5fbkG.png

透過這一系列操作,我們將可以完整實現BB84協議

明天將會放上完整實做的程式

參考資料: womanium 教材


上一篇
Day12->BB84 Protocol with noise
下一篇
Day14->Complete BB84 Protocol Implementation
系列文
Womanium Global Quantum Project-Quantum Software&Hardware30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言